//
//  UIView+TFCore.h
//  TFFoundation
//
//  Created by TFAppleWork-Summer on 2017/3/21.
//  Copyright © 2017年 TFAppleWork-Summer. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "TFViewActionTarget.h"

/**
 UIView常用类别
 */
@interface UIView (TFCore)

///=============================================================================
/// @name frame layout.
///=============================================================================

/**
 宽度
 */
@property (nonatomic,assign) CGFloat tf_width;

/**
 高度
 */
@property (nonatomic,assign) CGFloat tf_height;

/**
 大小
 */
@property (nonatomic,assign) CGSize tf_size;

/**
 左边
 */
@property (nonatomic,assign) CGFloat tf_left;

/**
 上边
 */
@property (nonatomic,assign) CGFloat tf_top;

/**
 右边
 */
@property (nonatomic,assign) CGFloat tf_right;

/**
 下边
 */
@property (nonatomic,assign) CGFloat tf_bottom;

/**
 起始点
 */
@property (nonatomic,assign) CGPoint tf_origin;

/**
 中心点
 */
@property (nonatomic, assign) CGPoint tf_center;

/**
 右上角的点
 */
@property (nonatomic,assign) CGPoint tf_rightTop;

/**
 左下角的点
 */
@property (nonatomic,assign) CGPoint tf_leftBottom;

/**
 右下角的点
 */
@property (nonatomic,assign) CGPoint tf_rightBottom;

/**
 水平方向中心位置
 */
@property (nonatomic,assign) CGFloat tf_centerX;

/**
 竖直方向中心位置
 */
@property (nonatomic,assign) CGFloat tf_centerY;



///=============================================================================
/// @name 常用方法以及属性.
///=============================================================================

/**
 获取对应的视图控制器
 */
@property (nullable, nonatomic, readonly) UIViewController *tf_viewController;

/**
 圆角
 */
@property (nonatomic, assign) CGFloat tf_cornerRadius;

/**
 边框宽度
 */
@property (nonatomic, assign) CGFloat tf_borderWidth;

/**
 边框颜色
 */
@property (nonatomic, strong, nullable) UIColor *tf_borderColor;

/**
 移除所有的子view
 */
- (void)tf_removeAllSubViews;

/**
 屏幕截图

 @return UIImage
 */
- (nonnull UIImage *)tf_snapshotImage;

/**
 获取跟随屏幕改变而改变的截图

 @param afterUpdates 是否跟随改变
 @return UIImage
 */
- (nullable UIImage *)tf_snapshotImageAfterScreenUpdates:(BOOL)afterUpdates;

/**
 根据背景色创建view

 @param backgroudColor 背景色
 @return UIView
 */
+ (nonnull instancetype)tf_viewWithBackgroudColor:(nonnull UIColor *)backgroudColor;

/**
 统一的事件处理对象
 */
@property (nonatomic, strong, nullable) TFViewActionTarget *tf_actionTarget;

/**
 添加tap手势，并处理事件

 @param actionHandler 事件处理
 */
- (void)tf_addTapGestureWithActionHandler:(nullable TFViewActionHandlerBlock)actionHandler;



@end
